package servCod;

import org.orm.PersistentException;
import org.orm.PersistentTransaction;

public class PalabraDb {
	
	
	public void agregarPalabra(String encriptada, String desencriptada){		
		PersistentTransaction t;
		
		try {
			t= orm.DiagnosticoPersistentManager.instance().getSession().beginTransaction();
			
			orm.DAOFactory dao = orm.DAOFactory.getDAOFactory();
			//Factory = instancia a la capa DAO 
			orm.dao.PalabraDAO nPalabra = dao.getPalabraDAO();
			//dao
			orm.Palabra palabra = nPalabra.createPalabra();
			
			palabra.setPal_encriptada(encriptada);
			palabra.setPal_desencriptada(desencriptada);
			
			nPalabra.save(palabra);
			t.commit();
								
		
		} catch (PersistentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public String encontrarDesencriptado(String desencriptado){		
		PersistentTransaction t;
		String respuesta="";
		try {
			t= orm.DiagnosticoPersistentManager.instance().getSession().beginTransaction();
			orm.DAOFactory dao = orm.DAOFactory.getDAOFactory();
			orm.dao.PalabraDAO nPalabra = dao.getPalabraDAO();
			
			orm.Palabra ormPalabra = nPalabra.loadPalabraByQuery("pal_desencriptada='"+desencriptado+"'", null);
	
			try
			{
				if(ormPalabra.getPal_desencriptada().equals(desencriptado)){
					respuesta=ormPalabra.getPal_encriptada();
				}
			}
			catch (Exception e) {
				respuesta="";
				e.printStackTrace();
			}
					
			
		} catch (PersistentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		
		}
		return respuesta;
	}
	
	public String encontrarEncriptado(String encriptado){
		PersistentTransaction t;
		String respuesta="";
		try {
			t= orm.DiagnosticoPersistentManager.instance().getSession().beginTransaction();
			orm.DAOFactory dao = orm.DAOFactory.getDAOFactory();
			orm.dao.PalabraDAO nPalabra = dao.getPalabraDAO();
			
			orm.Palabra ormPalabra = nPalabra.loadPalabraByQuery("pal_encriptada='"+encriptado+"'", null);
			
			try{
				String aux=ormPalabra.getPal_encriptada();
				if(aux.equals(encriptado)){
					respuesta=ormPalabra.getPal_desencriptada();
				}
			}
			catch (Exception e) {
				// TODO: handle exception
				respuesta="";
				e.printStackTrace();
			}
						
		} catch (PersistentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		
		}
		return respuesta;
	}

}
